package org.dromara.finance.domain.vo;

import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.finance.domain.Staff;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 员工视图对象 staff
 *
 * @author xxy
 * @date 2025-08-15
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = Staff.class)
public class StaffVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ExcelProperty(value = "主键ID")
    private Long id;

    /**
     * 员工编码
     */
    @ExcelProperty(value = "员工编码")
    private String code;

    /**
     * 员工名称
     */
    @ExcelProperty(value = "员工名称")
    private String name;

    private Long deptId;
    /**
     * 所属部门
     */
    @ExcelProperty(value = "所属部门")
    @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "deptId")
    private String deptName;

    /**
     * 性别
     */
    @ExcelProperty(value = "性别")
    private Long sex;

    /**
     * 证件类型（如：身份证、护照）
     */
    @ExcelProperty(value = "证件类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "如=：身份证、护照")
    private String idType;

    /**
     * 证件号码
     */
    @ExcelProperty(value = "证件号码")
    private String idNumber;

    /**
     * 家庭地址
     */
    @ExcelProperty(value = "家庭地址")
    private String address;

    /**
     * 手机号
     */
    @ExcelProperty(value = "手机号")
    private String phone;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 启用状态
     */
    @ExcelProperty(value = "启用状态")
    private Long staffStatus;


}
